package com.lxk.cms.domain.bo;

import com.lxk.cms.domain.CmsReply;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 通用评论业务对象 cms_reply
 *
 * @author soda
 * @date 2024-08-06
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = CmsReply.class, reverseConvertGenerate = false)
public class CmsReplyBo extends BaseEntity {

    /**
     * ID
     */
    @NotNull(message = "ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 用户id
     */
    @NotNull(message = "用户id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long uid;

    /**
     * 评论类型
     */
    @NotNull(message = "评论类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer type;

    /**
     * 内容
     */
    @NotBlank(message = "内容不能为空", groups = { AddGroup.class, EditGroup.class })
    private String content;

    /**
     * 图片地址
     */
    @NotBlank(message = "图片地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String imageUrl;

    /**
     * 视频地址
     */
    @NotBlank(message = "视频地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String videoUrl;

    /**
     * 一级评论ID
     */
    @NotNull(message = "一级评论ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long parentId;

    /**
     * 一级用户ID
     */
    @NotNull(message = "一级用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long parentUid;

    /**
     * 原评论ID
     */
    @NotNull(message = "原评论ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long reviewId;

    /**
     * 原评论用户ID
     */
    @NotNull(message = "原评论用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long reviewUid;

    /**
     * 点赞数
     */
    @NotNull(message = "点赞数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long likeCount;

    /**
     * 虚拟点赞数
     */
    @NotNull(message = "虚拟点赞数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long likeVirtually;

    /**
     * 评论数
     */
    @NotNull(message = "评论数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long countReply;

    /**
     * 审核状态
     */
    @NotNull(message = "审核状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer auditStatus;

    /**
     * 拒绝原因
     */
    @NotBlank(message = "拒绝原因不能为空", groups = { AddGroup.class, EditGroup.class })
    private String refusal;

    /**
     * 关联ID
     */
    @NotNull(message = "关联ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long keyId;

    /**
     * 评论的类型
     */
    @NotBlank(message = "评论的类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String category;

    /**
     * 回复的人
     */
    @NotNull(message = "回复的人不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long toUid;


}
